#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <stdint.h>

// Defines para configuração
#define _GNU_SOURCE
#define LIM_TOKEN 3
#define NUM_INSTRUCOES 16
#define ERRORS_LIMIT 255
#define LIM_SIMBOLOS 255
#define MEMORIA 1024
#define FALSE -1
#define TRUE -2
#define SPACE 14
#define STOP 11
#define ATRIB 15

//Estrutura de uma instrução já com uma declaração da tabela de instruções
struct instrucao {
    char nome[7];
    short int codigo;
    short int operandos;
}TabInstrucoes[NUM_INSTRUCOES];

// Variáveis globais
int programCounter, sybolCounter, fileLine, tokenCounter, errorCounter, numOperandos, locSTOP;
char nomeArquivo[255], caminhoArquivo[255];

//Protótipos de funções
int buscaInstrucao(char * token);
void inicializaTabInstrucoes();
void trataCaminhoArquivo(char * caminhoArq);